package ponyai;

public class Ponyai003 {
}
/*
Pony.ai-003. 路径规划
https://leetcode.cn/problems/YZJQkT/

路径规划对于自动驾驶来说是非常重要的一环，它决定了自动驾驶的车辆如何在道路上行驶。现在给出一个城市的地图，请规划出最快从起点到达终点的路线。
地图中的路都平行于 X 轴或 Y 轴，所有的路是双向通行的。路与路的交叉点有交通灯限制通行，所有的交通灯都是统一周期控制的。
交通灯共有三种不同的状态。第一种是只能右转，维持 T1 秒；第二种是可以直行左转和右转，维持 T2 秒；第三种是只能直行和右转，维持 T3 秒。
三种状态按顺序交替循环，即:
[0, T1), [T1 + T2 + T3, 2T1 + T2 + T3), [2T1 + 2T2 + 2T3, 3T1 + 2T2 + 2T3) 时只能右转
[T1, T1 + T2), [2T1 + T2 + T3, 2T1 + 2T2 + T3), [3T1 + 2T2 + 2T3, 3T1 + 3T2 + 2T3) 时可以直行左转和右转
[T1 + T2, T1 + T2 + T3), [2T1 + 2T2 + T3, 2T1 + 2T2 + 2T3), [3T1 + 3T2 + 2T3, 3T1 + 3T2 + 3T3) 时可以直行和右转，如此类推。
路的中间和路口都无法掉头。假设车的速度为 1 单位长度/s，在起点处车可以自己选择启动的方向，给出起点和终点的坐标，问从起点开到终点最少需要的时间。
输入描述：
第一行输入道路的条数 N。
然后 N 行，每行 4 个整数 X1 Y1 X2 Y2，表示每条道路两个端点的坐标。输入保证每条道路平行于 X 轴或 Y 轴，每条路的长度都大于 0,，道路之间不会有长度大于 0 的重合。
然后一行 4 个整数 SX SY TX TY，表示起点和终点的坐标。保证起点和终点位于道路上。
最后一行 3 个整数 T0 T1 T2，表示交通灯三种状态的持续时间。
输出描述：
输出到达终点的最少时间。数据保证可以从起点走到终点。
备注：
60% 的数据，N ≤ 100，所有坐标，X,Y ∈[0,100]，0 < T1,T2,T3 ≤100
100% 的数据，N ≤1000，所有坐标， X,Y ∈[0,1000000000]，0 < T1,T2,T3 ≤1000000000
示例 1
输入
2
0 2 4 2
2 0 2 4
1 2 2 1
1 1 1
输出
2
说明
只要直接往东走 1，右转之后往南走 1 就可以到达终点。
示例 2
输入
4
0 0 0 2
0 1 1 1
1 0 1 2
1 2 2 2
0 0 2 2
1 1 1
输出
6
说明
先往北走 1，再右转往东走 1，需要等 2 秒才能左转，之后再往北走 1 和右转往东走 1 就可以到达终点，总共需要时间 6 秒。
 */